Skip to content

feat(release): add digital signature to Toolbox binaries#3528

Merged
Yuan325 merged 10 commits into
mainfrom
ci/code-sign
Jun 30, 2026
Merged

feat(release): add digital signature to Toolbox binaries#3528
Yuan325 merged 10 commits into
mainfrom
ci/code-sign

Conversation

@duwenxin99

@duwenxin99 duwenxin99 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor
  • Upload unsigned binaries to unsigned GCS bucket instead.
  • Check that signed binaries are uploaded to the signed bucket when generating the release table.
  • Add user guide to validate digital signature.

Fix: #996

@duwenxin99 duwenxin99 requested a review from a team as a code owner June 25, 2026 20:51
@duwenxin99 duwenxin99 added the release candidate Use label to signal PR should be included in the next release. label Jun 25, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request integrates automated binary signing into the release pipeline by uploading unsigned binaries to an unsigned bucket, triggering Kokoro signing jobs for Linux, macOS, and Windows, and waiting for the signed assets before publishing. It also updates the quickstart documentation with instructions on how to verify these signatures. The reviewer feedback suggests adding timeout limits to the polling loops in the CI scripts to prevent indefinite hangs, fixing a potential 404 error for Windows downloads in the documentation, wrapping the GPG signature URL in release-please markers for automated versioning, and standardizing markdown indentation to avoid Hugo rendering issues.

Comment thread .ci/generate_release_table.sh
Comment thread .ci/versioned.release.cloudbuild.yaml Outdated
Comment thread docs/en/documentation/getting-started/quickstart/shared/configure_toolbox.md Outdated
@Yuan325 Yuan325 enabled auto-merge (squash) June 30, 2026 22:51
@Yuan325 Yuan325 disabled auto-merge June 30, 2026 23:13
@Yuan325 Yuan325 enabled auto-merge (squash) June 30, 2026 23:34
@Yuan325 Yuan325 changed the title ci(release): integrate Kokoro code signing into release workflow feat(release): integrate code signing into release workflow Jun 30, 2026
@Yuan325 Yuan325 changed the title feat(release): integrate code signing into release workflow feat(release): add digital signature to Toolbox binaries Jun 30, 2026
@Yuan325 Yuan325 merged commit 3f0f0af into main Jun 30, 2026
33 checks passed
@Yuan325 Yuan325 deleted the ci/code-sign branch June 30, 2026 23:56
@github-actions

Copy link
Copy Markdown
Contributor

🧨 Preview deployments removed.

Cloudflare Pages environments for pr-3528 have been deleted.

github-actions Bot pushed a commit that referenced this pull request Jul 1, 2026
…low (#3528)

- Upload unsigned binaries to unsigned GCS bucket instead.
- Check that signed binaries are uploaded to the signed bucket when
generating the release table.
- Add user guide to validate digital signature.

Fix: #996

---------

Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 3f0f0af
Yuan325 added a commit that referenced this pull request Jul 1, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.6.0](v1.5.0...v1.6.0)
(2026-06-30)


### Features

* Support MCP 2026 draft specs
([#3544](#3544))
([d12eaa8](d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([#3528](#3528))
([3f0f0af](3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([#3529](#3529))
([d6dc5fe](d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([#3478](#3478))
([bc2de2a](bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([#3337](#3337))
([6dd669a](6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([#3499](#3499))
([7ea7a09](7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([#3500](#3500))
([182f933](182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([#3494](#3494))
([997fb8c](997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([#3507](#3507))
([cd22b89](cd22b89))


### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([#3460](#3460))
([cc2a61e](cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([#3531](#3531))
([b67419d](b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([#3515](#3515))
([18c539c](18c539c))


---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Jul 1, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([#3544](#3544))
([d12eaa8](d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([#3528](#3528))
([3f0f0af](3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([#3529](#3529))
([d6dc5fe](d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([#3478](#3478))
([bc2de2a](bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([#3337](#3337))
([6dd669a](6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([#3499](#3499))
([7ea7a09](7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([#3500](#3500))
([182f933](182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([#3494](#3494))
([997fb8c](997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([#3507](#3507))
([cd22b89](cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([#3460](#3460))
([cc2a61e](cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([#3531](#3531))
([b67419d](b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([#3515](#3515))
([18c539c](18c539c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 35c13ad
github-actions Bot pushed a commit to pepe57/genai-toolbox that referenced this pull request Jul 1, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([googleapis#3544](googleapis#3544))
([d12eaa8](googleapis@d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([googleapis#3528](googleapis#3528))
([3f0f0af](googleapis@3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([googleapis#3529](googleapis#3529))
([d6dc5fe](googleapis@d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([googleapis#3478](googleapis#3478))
([bc2de2a](googleapis@bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([googleapis#3337](googleapis#3337))
([6dd669a](googleapis@6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([googleapis#3499](googleapis#3499))
([7ea7a09](googleapis@7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([googleapis#3500](googleapis#3500))
([182f933](googleapis@182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([googleapis#3494](googleapis#3494))
([997fb8c](googleapis@997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([googleapis#3507](googleapis#3507))
([cd22b89](googleapis@cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([googleapis#3460](googleapis#3460))
([cc2a61e](googleapis@cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([googleapis#3531](googleapis#3531))
([b67419d](googleapis@b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([googleapis#3515](googleapis#3515))
([18c539c](googleapis@18c539c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 35c13ad
github-actions Bot pushed a commit to rodineyw/mcp-toolbox that referenced this pull request Jul 1, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([googleapis#3544](googleapis#3544))
([d12eaa8](googleapis@d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([googleapis#3528](googleapis#3528))
([3f0f0af](googleapis@3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([googleapis#3529](googleapis#3529))
([d6dc5fe](googleapis@d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([googleapis#3478](googleapis#3478))
([bc2de2a](googleapis@bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([googleapis#3337](googleapis#3337))
([6dd669a](googleapis@6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([googleapis#3499](googleapis#3499))
([7ea7a09](googleapis@7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([googleapis#3500](googleapis#3500))
([182f933](googleapis@182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([googleapis#3494](googleapis#3494))
([997fb8c](googleapis@997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([googleapis#3507](googleapis#3507))
([cd22b89](googleapis@cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([googleapis#3460](googleapis#3460))
([cc2a61e](googleapis@cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([googleapis#3531](googleapis#3531))
([b67419d](googleapis@b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([googleapis#3515](googleapis#3515))
([18c539c](googleapis@18c539c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 35c13ad
github-actions Bot pushed a commit to Jaleel-zhu/genai-toolbox that referenced this pull request Jul 1, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([googleapis#3544](googleapis#3544))
([d12eaa8](googleapis@d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([googleapis#3528](googleapis#3528))
([3f0f0af](googleapis@3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([googleapis#3529](googleapis#3529))
([d6dc5fe](googleapis@d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([googleapis#3478](googleapis#3478))
([bc2de2a](googleapis@bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([googleapis#3337](googleapis#3337))
([6dd669a](googleapis@6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([googleapis#3499](googleapis#3499))
([7ea7a09](googleapis@7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([googleapis#3500](googleapis#3500))
([182f933](googleapis@182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([googleapis#3494](googleapis#3494))
([997fb8c](googleapis@997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([googleapis#3507](googleapis#3507))
([cd22b89](googleapis@cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([googleapis#3460](googleapis#3460))
([cc2a61e](googleapis@cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([googleapis#3531](googleapis#3531))
([b67419d](googleapis@b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([googleapis#3515](googleapis#3515))
([18c539c](googleapis@18c539c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 35c13ad
github-actions Bot pushed a commit to bhardwajRahul/genai-toolbox that referenced this pull request Jul 2, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([googleapis#3544](googleapis#3544))
([d12eaa8](googleapis@d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([googleapis#3528](googleapis#3528))
([3f0f0af](googleapis@3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([googleapis#3529](googleapis#3529))
([d6dc5fe](googleapis@d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([googleapis#3478](googleapis#3478))
([bc2de2a](googleapis@bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([googleapis#3337](googleapis#3337))
([6dd669a](googleapis@6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([googleapis#3499](googleapis#3499))
([7ea7a09](googleapis@7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([googleapis#3500](googleapis#3500))
([182f933](googleapis@182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([googleapis#3494](googleapis#3494))
([997fb8c](googleapis@997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([googleapis#3507](googleapis#3507))
([cd22b89](googleapis@cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([googleapis#3460](googleapis#3460))
([cc2a61e](googleapis@cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([googleapis#3531](googleapis#3531))
([b67419d](googleapis@b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([googleapis#3515](googleapis#3515))
([18c539c](googleapis@18c539c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 35c13ad
github-actions Bot pushed a commit to AnmolShukla2002/genai-toolbox that referenced this pull request Jul 2, 2026
🤖 I have created a release *beep* *boop*
---

##
[1.6.0](googleapis/mcp-toolbox@v1.5.0...v1.6.0)
(2026-06-30)

### Features

* Support MCP 2026 draft specs
([googleapis#3544](googleapis#3544))
([d12eaa8](googleapis@d12eaa8))
* **release:** Add digital signature to Toolbox binaries
([googleapis#3528](googleapis#3528))
([3f0f0af](googleapis@3f0f0af))
* **tool/cloud-storage:** Configure object operation parameters
([googleapis#3529](googleapis#3529))
([d6dc5fe](googleapis@d6dc5fe))
* **tool/cloud-storage:** Support configurable parameters
([googleapis#3478](googleapis#3478))
([bc2de2a](googleapis@bc2de2a))
* **tools/dataplex-list-data-products:** Add dataplex-list-data-products
tool ([googleapis#3337](googleapis#3337))
([6dd669a](googleapis@6dd669a))
* **tools/dataplex-get-data-product:** Add dataplex-get-data-product
tool ([googleapis#3499](googleapis#3499))
([7ea7a09](googleapis@7ea7a09))
* **tools/dataplex-list-data-assets:** Add dataplex-list-data-assets
tool ([googleapis#3500](googleapis#3500))
([182f933](googleapis@182f933))
* **tools/looker:** Support complex filter_expression parameter in
queries ([googleapis#3494](googleapis#3494))
([997fb8c](googleapis@997fb8c))
* **tools/looker:** Support dynamic_fields parameter in queries
([googleapis#3507](googleapis#3507))
([cd22b89](googleapis@cd22b89))

### Bug Fixes

* **tools/gda:** Support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for GDA
client ([googleapis#3460](googleapis#3460))
([cc2a61e](googleapis@cc2a61e))
* **tools/looker-conversational-analytics:** Validate explore_references
shape instead of panicking
([googleapis#3531](googleapis#3531))
([b67419d](googleapis@b67419d))
* **tool/looker-create-view-from-table:** Correct Looker API payload
structure
([googleapis#3515](googleapis#3515))
([18c539c](googleapis@18c539c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 35c13ad
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release candidate Use label to signal PR should be included in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add digital signature to Toolbox binaries

2 participants